ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド
リリース7.0
E05173-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

アプリケーションでデータ・ストアへのダイレクト・ドライバ接続を作成できない

この項では、アプリケーションでデータ・ストアとのダイレクト・ドライバ接続を作成できないときに確認する事項を説明します。

考えられる原因
対処
TimesTenのリリースとデータ・ストアが一致していない
TimesTenデータ・ストアのアクセス制御が有効になっているが、ユーザーにアクセス権がない
ファイル権限が正しくない
TimesTenデーモンまたはData Managerサービスが稼働していない
互換性のない接続属性またはデータ・ストアの不正なパス名がDSNに設定されている
共有メモリー・セグメントが使用できない、または共有メモリー・セグメントの最大サイズが小さすぎる
スワップ領域が不十分である
ファイル記述子の数が不適切である
その他の問題
TimesTenデーモン・ログを確認する(「ttDaemonLogユーティリティの使用」を参照)

データ・ストアのリリースの互換性を確認する

データ・ストアの作成に使用したTimesTenのマイナー・リリースのみが、そのデータ・ストアへのアクセスを保証されます。TimesTenソフトウェアをアップグレードし、その新しいリリースを使用して、作成済のデータ・ストアにアクセスする場合は、新しいリリースでデータ・ストアを作成します。その後、ttMigrateユーティリティを使用して、古いデータ・ストアから新しいデータ・ストアに表、索引および表データをコピーします。

詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のデータ・ストアのアップグレードに関する説明を参照してください。

データ・ストアへのアクセスに必要なアクセス制御権限を確認する

データ・ストアのアクセス制御が有効な場合は、ttUserPrivileges()を使用してCREATE DATASTORE権限があるかどうかを確認します。アクセス権がない場合は、管理者から、GRANT文を使用してCREATE DATASTORE権限を付与される必要があります。

データ・ストアにアクセスするためのファイル・システム権限を確認する

データ・ストアに接続しようした場合に、チェックポイントまたはログ・ファイル、あるいはそれらのファイルがあるディレクトリへの適切なアクセス権がないと、権限が拒否されたことを示すエラーが生成されます。DSNのデータ・ストアに指定されているディレクトリに格納されているファイルに対するファイル・システム権限を確認します。

データ・ストアに対してGroupRestrict属性が設定されている場合は、指定されたグループにリストされていることを確認します。

TimesTenデーモンが稼働していることを確認する

TimesTenデーモンまたはData Managerサービスが稼働していないときにデータ・ストアに接続しようとすると、TimesTenエラー799「Unable to connect to daemon; check daemon status」が生成されます。

ttStatusユーティリティ(「TimesTenプロセスの現在の状態を確認する」を参照)を使用して、TimesTenデーモンのステータスを確認します。

DSN定義を確認する

DSNの記述で次の操作を実行します。

DSN属性を確認する

特定の接続オプションまたはDSN属性の設定の組合せに互換性がありません。たとえば、Loggingが無効である場合、デフォルトの行レベル・ロックの設定(LockLevel=0)は使用できません。互換性のない設定を使用してデータ・ストアに接続しようとすると、アプリケーションにエラーが返されます。

データ・ストアのパス名とログ・ディレクトリを確認する

DSNのデータ・ストアおよびLogDir属性に正しいパス名が指定されていることを確認します。また、パス名は相対パス名ではなく、絶対パス名であることも確認します。絶対パス名を指定しないと、パス名は、アプリケーションが起動されたディレクトリに対する相対パスになります。

Windowsの場合、ODBCデータソース・アドミニストレータでのユーザーDSNとシステムDSNの違いに注意してください。ユーザーDSNは作成しないでください。ユーザーDSNは、それを定義したユーザーからしか参照できません。システムDSNはすべてのユーザーが参照できます。特に、WindowsサービスとしてTimesTenアプリケーションを実行する場合、そのアプリケーションはデフォルトでユーザーSYSTEMとして実行され、ユーザーDSNを参照しません。データ・ストアのパス名に、マップされたドライブを使用していないことを確認します。

UNIXでは、別のパス名を使用してデータ・ストア・ファイルにアクセスできる場合でも、常に同じパス名を使用してデータ・ストアを参照する必要があります。

たとえば、間違ったパス名をDSNに設定すると、次のようなエラーが発生します。

% ttIsql -connStr "dsn=demods;DataStore=/incorrect/path"

...

connect "dsn=demods;DataStore=/incorrect/path";

IM002: Data source name not found and no default driver specified

The command failed.

共有メモリー・セグメントのサイズと可用性を確認する

接続または作成しようとする共有データ・ストアのサイズが、システムに構成された共有メモリー・セグメントの最大サイズより大きいと、エラーが返されます。また、システムが共有メモリー・セグメントをそれ以上割り当てることができない場合もエラーが返されます。

UNIXシステムでは、次のコマンドを使用できます。

共有メモリー・セグメントは使用可能であるが、小さすぎてデータ・ストアを保持できない場合は、ttSizeユーティリティを使用して、表に必要なメモリー量を見積もり、PermSizeおよびTempSize属性の値を確認して、データ・ストア用に設定されているメモリー量を検証します。永続データ・パーティションと一時データ・パーティションのサイズを設定するためのガイドラインについては、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のデータ・ストアのサイズ変更に関する説明を参照してください。データ・ストアに対して設定されているメモリー量が多すぎる場合は、PermSizeおよびTempSizeの値を小さくします。詳細は、「データ・ストアに割り当てられたメモリーの量を確認する」を参照してください。共有メモリー・セグメントのサイズを大きくするその他のオプションについては、次の説明を参照してください。

システム障害またはアプリケーション障害が原因でデータ・ストアが無効になると、後続の接続によってデータ・ストアがリカバリされます。データ・ストア領域を使い果たしたためにリカバリが失敗した場合は、PermSizeおよびTempSizeの値を現在の値より大きくして、データ・ストアに再接続します。共有メモリーが十分でないためにリカバリが失敗した場合は、共有メモリー・セグメントの最大サイズを大きくする必要があります。

共有メモリー・セグメントのサイズを大きくするには、次の手順を実行します。

TimesTenの共有メモリー・セグメントの構成方法の詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のインストールの前提条件に関する説明を参照してください。

使用可能なスワップ領域(仮想メモリー)を確認する

shmget操作のための十分な共有メモリーがない場合、この操作は失敗します。共有メモリーをバックアップするために、十分なスワップ領域が必要です。

UNIXシステムの場合は、swapコマンドを使用して仮想メモリーを確認し、システムに追加できます。

Windowsシステムの場合は、「Computer Management Properties」ダイアログ・ウィンドウの「Advanced」タブで、仮想メモリーのサイズを確認し、再設定できます。

使用可能なファイル記述子の数を増やす

TimesTenデータ・ストアに接続されている各プロセスは、1つ以上のオペレーティング・システム・ファイル記述子をオープンしたままにします。ディスク・ロギングが有効である場合、チェックポイントが実行される場合、およびトランザクションがコミットまたはロールバックされる場合は、各接続に対してさらにファイル記述子をオープンすることができます。データ・ストアに接続しようとしたときに、ファイル記述子がすべて使用中であるというエラーを受信した場合は、ファイル記述子の許容数を増やします。

システムのファイル記述子の数を増やすには、次の手順を実行します。